#include "language_codes.h"

std::map<std::string, std::string> language_codes = {{"__af__", "Afrikaans"},
						     {"__am__", "Amharic"},
						     {"__ar__", "Arabic"},
						     {"__ast__", "Asturian"},
						     {"__az__", "Azerbai"},
						     {"__ba__", "Bashkir"},
						     {"__be__", "Belarusian"},
						     {"__bg__", "Bulgarian"},
						     {"__bn__", "Bengali"},
						     {"__br__", "Breton"},
						     {"__bs__", "Bosnian"},
						     {"__ca__", "Catalan"},
						     {"__ceb__", "Cebuano"},
						     {"__cs__", "Czech"},
						     {"__cy__", "Welsh"},
						     {"__da__", "Danish"},
						     {"__de__", "German"},
						     {"__el__", "Greek"},
						     {"__en__", "English"},
						     {"__es__", "Spanish"},
						     {"__et__", "Estonian"},
						     {"__fa__", "Persian"},
						     {"__ff__", "Fulah"},
						     {"__fi__", "Finnish"},
						     {"__fr__", "French"},
						     {"__fy__", "Frisian"},
						     {"__ga__", "Irish"},
						     {"__gd__", "Scottish Gaelic"},
						     {"__gl__", "Galician"},
						     {"__gu__", "Gujarati"},
						     {"__ha__", "Hausa"},
						     {"__he__", "Hebrew"},
						     {"__hi__", "Hindi"},
						     {"__hr__", "Croatian"},
						     {"__ht__", "Haitian Creole"},
						     {"__hu__", "Hungarian"},
						     {"__hy__", "Armenian"},
						     {"__id__", "Indonesian"},
						     {"__ig__", "Igbo"},
						     {"__ilo__", "Ilokano"},
						     {"__is__", "Icelandic"},
						     {"__it__", "Italian"},
						     {"__ja__", "Japanese"},
						     {"__jv__", "Javanese"},
						     {"__ka__", "Georgian"},
						     {"__kk__", "Kazakh"},
						     {"__km__", "Khmer"},
						     {"__kn__", "Kannada"},
						     {"__ko__", "Korean"},
						     {"__lb__", "Luxembourgish"},
						     {"__lg__", "Ganda"},
						     {"__ln__", "Lingala"},
						     {"__lo__", "Lao"},
						     {"__lt__", "Lithuanian"},
						     {"__lv__", "Latvian"},
						     {"__mg__", "Malagasy"},
						     {"__mk__", "Macedonian"},
						     {"__ml__", "Malayalam"},
						     {"__mn__", "Mongolian"},
						     {"__mr__", "Marathi"},
						     {"__ms__", "Malay"},
						     {"__my__", "Burmese"},
						     {"__ne__", "Nepali"},
						     {"__nl__", "Dutch"},
						     {"__no__", "Norwegian"},
						     {"__ns__", "Northern Sotho"},
						     {"__oc__", "Occitan"},
						     {"__or__", "Oriya"},
						     {"__pa__", "Punjabi"},
						     {"__pl__", "Polish"},
						     {"__ps__", "Pashto"},
						     {"__pt__", "Portuguese"},
						     {"__ro__", "Romanian"},
						     {"__ru__", "Russian"},
						     {"__sd__", "Sindhi"},
						     {"__si__", "Sinhala"},
						     {"__sk__", "Slovak"},
						     {"__sl__", "Slovenian"},
						     {"__so__", "Somali"},
						     {"__sq__", "Albanian"},
						     {"__sr__", "Serbian"},
						     {"__ss__", "Swati"},
						     {"__su__", "Sundanese"},
						     {"__sv__", "Swedish"},
						     {"__sw__", "Swahili"},
						     {"__ta__", "Tamil"},
						     {"__th__", "Thai"},
						     {"__tl__", "Tagalog"},
						     {"__tn__", "Tswana"},
						     {"__tr__", "Turkish"},
						     {"__uk__", "Ukrainian"},
						     {"__ur__", "Urdu"},
						     {"__uz__", "Uzbek"},
						     {"__vi__", "Vietnamese"},
						     {"__wo__", "Wolof"},
						     {"__xh__", "Xhosa"},
						     {"__yi__", "Yiddish"},
						     {"__yo__", "Yoruba"},
						     {"__zh__", "Chinese"},
						     {"__zu__", "Zulu"}};

std::map<std::string, std::string> language_codes_reverse = {{"Afrikaans", "__af__"},
							     {"Amharic", "__am__"},
							     {"Arabic", "__ar__"},
							     {"Asturian", "__ast__"},
							     {"Azerbai", "__az__"},
							     {"Bashkir", "__ba__"},
							     {"Belarusian", "__be__"},
							     {"Bengali", "__bn__"},
							     {"Breton", "__br__"},
							     {"Bosnian", "__bs__"},
							     {"Catalan", "__ca__"},
							     {"Cebuano", "__ceb__"},
							     {"Czech", "__cs__"},
							     {"Welsh", "__cy__"},
							     {"Danish", "__da__"},
							     {"German", "__de__"},
							     {"Greek", "__el__"},
							     {"English", "__en__"},
							     {"Spanish", "__es__"},
							     {"Estonian", "__et__"},
							     {"Persian", "__fa__"},
							     {"Fulah", "__ff__"},
							     {"Finnish", "__fi__"},
							     {"French", "__fr__"},
							     {"Frisian", "__fy__"},
							     {"Irish", "__ga__"},
							     {"Scottish Gaelic", "__gd__"},
							     {"Galician", "__gl__"},
							     {"Gujarati", "__gu__"},
							     {"Hausa", "__ha__"},
							     {"Hebrew", "__he__"},
							     {"Hindi", "__hi__"},
							     {"Croatian", "__hr__"},
							     {"Haitian Creole", "__ht__"},
							     {"Hungarian", "__hu__"},
							     {"Armenian", "__hy__"},
							     {"Indonesian", "__id__"},
							     {"Igbo", "__ig__"},
							     {"Ilokano", "__ilo__"},
							     {"Icelandic", "__is__"},
							     {"Italian", "__it__"},
							     {"Japanese", "__ja__"},
							     {"Javanese", "__jv__"},
							     {"Georgian", "__ka__"},
							     {"Kazakh", "__kk__"},
							     {"Khmer", "__km__"},
							     {"Kannada", "__kn__"},
							     {"Korean", "__ko__"},
							     {"Luxembourgish", "__lb__"},
							     {"Ganda", "__lg__"},
							     {"Lingala", "__ln__"},
							     {"Lao", "__lo__"},
							     {"Lithuanian", "__lt__"},
							     {"Latvian", "__lv__"},
							     {"Malagasy", "__mg__"},
							     {"Macedonian", "__mk__"},
							     {"Malayalam", "__ml__"},
							     {"Mongolian", "__mn__"},
							     {"Marathi", "__mr__"},
							     {"Malay", "__ms__"},
							     {"Burmese", "__my__"},
							     {"Nepali", "__ne__"},
							     {"Dutch", "__nl__"},
							     {"Norwegian", "__no__"},
							     {"Northern Sotho", "__ns__"},
							     {"Occitan", "__oc__"},
							     {"Oriya", "__or__"},
							     {"Punjabi", "__pa__"},
							     {"Polish", "__pl__"},
							     {"Pashto", "__ps__"},
							     {"Portuguese", "__pt__"},
							     {"Romanian", "__ro__"},
							     {"Russian", "__ru__"},
							     {"Sindhi", "__sd__"},
							     {"Sinhala", "__si__"},
							     {"Slovak", "__sk__"},
							     {"Slovenian", "__sl__"},
							     {"Somali", "__so__"},
							     {"Albanian", "__sq__"},
							     {"Serbian", "__sr__"},
							     {"Swati", "__ss__"},
							     {"Sundanese", "__su__"},
							     {"Swedish", "__sv__"},
							     {"Swahili", "__sw__"},
							     {"Tamil", "__ta__"},
							     {"Thai", "__th__"},
							     {"Tagalog", "__tl__"},
							     {"Tswana", "__tn__"},
							     {"Turkish", "__tr__"},
							     {"Ukrainian", "__uk__"},
							     {"Urdu", "__ur__"},
							     {"Uzbek", "__uz__"},
							     {"Vietnamese", "__vi__"},
							     {"Wolof", "__wo__"},
							     {"Xhosa", "__xh__"},
							     {"Yiddish", "__yi__"},
							     {"Yoruba", "__yo__"},
							     {"Chinese", "__zh__"},
							     {"Zulu", "__zu__"}};

std::map<std::string, std::string> language_codes_from_whisper = {
	{"af", "__af__"},   {"am", "__am__"}, {"ar", "__ar__"}, {"ast", "__ast__"},
	{"az", "__az__"},   {"ba", "__ba__"}, {"be", "__be__"}, {"bg", "__bg__"},
	{"bn", "__bn__"},   {"br", "__br__"}, {"bs", "__bs__"}, {"ca", "__ca__"},
	{"ceb", "__ceb__"}, {"cs", "__cs__"}, {"cy", "__cy__"}, {"da", "__da__"},
	{"de", "__de__"},   {"el", "__el__"}, {"en", "__en__"}, {"es", "__es__"},
	{"et", "__et__"},   {"fa", "__fa__"}, {"ff", "__ff__"}, {"fi", "__fi__"},
	{"fr", "__fr__"},   {"fy", "__fy__"}, {"ga", "__ga__"}, {"gd", "__gd__"},
	{"gl", "__gl__"},   {"gu", "__gu__"}, {"ha", "__ha__"}, {"he", "__he__"},
	{"hi", "__hi__"},   {"hr", "__hr__"}, {"ht", "__ht__"}, {"hu", "__hu__"},
	{"hy", "__hy__"},   {"id", "__id__"}, {"ig", "__ig__"}, {"ilo", "__ilo__"},
	{"is", "__is__"},   {"it", "__it__"}, {"ja", "__ja__"}, {"jv", "__jv__"},
	{"ka", "__ka__"},   {"kk", "__kk__"}, {"km", "__km__"}, {"kn", "__kn__"},
	{"ko", "__ko__"},   {"lb", "__lb__"}, {"lg", "__lg__"}, {"ln", "__ln__"},
	{"lo", "__lo__"},   {"lt", "__lt__"}, {"lv", "__lv__"}, {"mg", "__mg__"},
	{"mk", "__mk__"},   {"ml", "__ml__"}, {"mn", "__mn__"}, {"mr", "__mr__"},
	{"ms", "__ms__"},   {"my", "__my__"}, {"ne", "__ne__"}, {"nl", "__nl__"},
	{"no", "__no__"},   {"ns", "__ns__"}, {"oc", "__oc__"}, {"or", "__or__"},
	{"pa", "__pa__"},   {"pl", "__pl__"}, {"ps", "__ps__"}, {"pt", "__pt__"},
	{"ro", "__ro__"},   {"ru", "__ru__"}, {"sd", "__sd__"}, {"si", "__si__"},
	{"sk", "__sk__"},   {"sl", "__sl__"}, {"so", "__so__"}, {"sq", "__sq__"},
	{"sr", "__sr__"},   {"ss", "__ss__"}, {"su", "__su__"}, {"sv", "__sv__"},
	{"sw", "__sw__"},   {"ta", "__ta__"}, {"th", "__th__"}, {"tl", "__tl__"},
	{"tn", "__tn__"},   {"tr", "__tr__"}, {"uk", "__uk__"}, {"ur", "__ur__"},
	{"uz", "__uz__"},   {"vi", "__vi__"}, {"wo", "__wo__"}, {"xh", "__xh__"},
	{"yi", "__yi__"},   {"yo", "__yo__"}, {"zh", "__zh__"}, {"zu", "__zu__"}};

std::map<std::string, std::string> language_codes_to_whisper = {
	{"__af__", "af"},   {"__am__", "am"}, {"__ar__", "ar"}, {"__ast__", "ast"},
	{"__az__", "az"},   {"__ba__", "ba"}, {"__be__", "be"}, {"__bg__", "bg"},
	{"__bn__", "bn"},   {"__br__", "br"}, {"__bs__", "bs"}, {"__ca__", "ca"},
	{"__ceb__", "ceb"}, {"__cs__", "cs"}, {"__cy__", "cy"}, {"__da__", "da"},
	{"__de__", "de"},   {"__el__", "el"}, {"__en__", "en"}, {"__es__", "es"},
	{"__et__", "et"},   {"__fa__", "fa"}, {"__ff__", "ff"}, {"__fi__", "fi"},
	{"__fr__", "fr"},   {"__fy__", "fy"}, {"__ga__", "ga"}, {"__gd__", "gd"},
	{"__gl__", "gl"},   {"__gu__", "gu"}, {"__ha__", "ha"}, {"__he__", "he"},
	{"__hi__", "hi"},   {"__hr__", "hr"}, {"__ht__", "ht"}, {"__hu__", "hu"},
	{"__hy__", "hy"},   {"__id__", "id"}, {"__ig__", "ig"}, {"__ilo__", "ilo"},
	{"__is__", "is"},   {"__it__", "it"}, {"__ja__", "ja"}, {"__jv__", "jv"},
	{"__ka__", "ka"},   {"__kk__", "kk"}, {"__km__", "km"}, {"__kn__", "kn"},
	{"__ko__", "ko"},   {"__lb__", "lb"}, {"__lg__", "lg"}, {"__ln__", "ln"},
	{"__lo__", "lo"},   {"__lt__", "lt"}, {"__lv__", "lv"}, {"__mg__", "mg"},
	{"__mk__", "mk"},   {"__ml__", "ml"}, {"__mn__", "mn"}, {"__mr__", "mr"},
	{"__ms__", "ms"},   {"__my__", "my"}, {"__ne__", "ne"}, {"__nl__", "nl"},
	{"__no__", "no"},   {"__ns__", "ns"}, {"__oc__", "oc"}, {"__or__", "or"},
	{"__pa__", "pa"},   {"__pl__", "pl"}, {"__ps__", "ps"}, {"__pt__", "pt"},
	{"__ro__", "ro"},   {"__ru__", "ru"}, {"__sd__", "sd"}, {"__si__", "si"},
	{"__sk__", "sk"},   {"__sl__", "sl"}, {"__so__", "so"}, {"__sq__", "sq"},
	{"__sr__", "sr"},   {"__ss__", "ss"}, {"__su__", "su"}, {"__sv__", "sv"},
	{"__sw__", "sw"},   {"__ta__", "ta"}, {"__th__", "th"}, {"__tl__", "tl"},
	{"__tn__", "tn"},   {"__tr__", "tr"}, {"__uk__", "uk"}, {"__ur__", "ur"},
	{"__uz__", "uz"},   {"__vi__", "vi"}, {"__wo__", "wo"}, {"__xh__", "xh"},
	{"__yi__", "yi"},   {"__yo__", "yo"}, {"__zh__", "zh"}, {"__zu__", "zu"}};
